package cn.zyq.charging.order.dao.repository;

import cn.zyq.charging.order.pojo.po.ChargingBillFailPO;
import cn.zyq.charging.order.pojo.po.ChargingBillSuccessPO;

/**
 * 数据仓库接口
 */
public interface OrderRepository {
    /**1.将订单状态从充电中修改为异常结束*/
    void updateOrderStatusFromProcess2ExceptionEnd(String orderNo);
    //用OrderRepository既可以调用OrderSuccessMapper的saveSuccessOrder也可以调用OrderFailMapper的saveFailOrder
    /**保存成功订单*/
    // ctrl alt b: 从接口的抽象方法跳转到实现类的方法中
    void saveSuccessOrder(ChargingBillSuccessPO chargingBillSuccessPO);
    /**保存失败订单*/ // ctrl alt b: 从接口的抽象方法跳转到实现类的方法中
    void saveFailOrder(ChargingBillFailPO chargingBillFailPO);

    /**根据订单编号查询成功订单信息*/
    // ctrl alt b: 从接口的抽象方法跳转到实现类的方法中
    ChargingBillSuccessPO getSuccessOrderByOrderNo(String orderNo);
    /**根据订单编号查询失败订单信息*/
    // ctrl alt b: 从接口的抽象方法跳转到实现类的方法中
    ChargingBillFailPO getFailOrderByOrderNo(String orderNo);
    /**根据订单编号和充电枪id，修改订单对应的设备信息(充电枪，充电桩)
     * 本项目是在DeviceCheckJob.java中的execute()方法中的充电成功分支中，
     * 根据订单id更新订单中对应的充电枪id(原本订单数据没有充电枪信息)
     */

    // ctrl alt b: 从接口的抽象方法跳转到实现类的方法中
    void updateOrderDeviceInfo(String orderNo, int gunId);
}